<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客修改</title>

    <!-- 引入自己写的样式 -->
    <link rel="stylesheet" href="css/conmmon.css">
    <link rel="stylesheet" href="css/blog_edit.css">
<link rel="stylesheet" href="css/mt.css">
    <!-- 引入 editor.md 的依赖 -->
    <link rel="stylesheet" href="editor.md/css/editormd.min.css" />
    <script src="js/jquery.min.js"></script>
    <script src="editor.md/editormd.js"></script>
    <script src="/js/urltools.js"></script>
    <script src="js/sessiontolls.js"></script>
</head>

<body>
    

    <!-- 导航栏 -->
    <div class="nav">
        <img src="img/logo2.jpg" alt="">
        <span class="title">我的博客系统</span>
        <!-- 用来占据中间位置 -->
        <span class="spacer"></span>
        <a href="blog_list.html">主页</a>
        <a href="javascript:quitEdit()">我的博客</a>
        <a href="javascript:logout()">注销</a>
        
    </div>

    
    <!-- 编辑框容器 -->
    <div class="blog-edit-container">
        <!-- 模态框 -->
        <div id="myModal" class="modal" >
            <div class="modal-content">
                <div class="modal-header">
                    <h2>请输入预期发布时间：</h2>
                    <span id="closeBtn" class="close">X</span>
                </div>
                <div class="modal-body">
                    <input type="text" id="dateInput" placeholder="请输入年月日数字时间（格式：2023-11-23）">
                    <button onclick="myTimeOut()">提交</button>
                </div>
                <div class="modal-footer">
                    <h3 style="color: #888;">注意:预期发布时间要大于等于当前时间</h3>
                    <h3 style="color: #888;">设置日期时间格式:2023年11月22日</h3>
                </div>
            </div>
        </div>
        <!-- //显示自动保存时间 -->
        <div id="timesave">

        </div>
        <!-- 标题编辑区 -->
        
        <!-- <span id="timesave" style="font-size: 14px; color: gainsboro;">保存成功</span> -->
        <div class="title">
            <input id="title" type="text" placeholder="在这里写下文章标题">
            <button id="mysave"  onclick="mysave()">保存草稿</button>
              <!-- 模态窗口触发按钮 -->
             <button id="triggerBtn" >定时发布</button>
            <button onclick="mysub()">发布文章</button>
       
   
        </div>
        
        <!-- 创建编辑器标签 -->
        <div id="editorDiv">
            <textarea id="editor-markdown" style="display:none;"></textarea>
        </div>
    </div>

    <script>

         var currentTime = new Date();//获取当前时间
         //格式化时间  24小时制
        var formattedDate = currentTime.toLocaleTimeString('zh-CN', { hour12: false });
        var years = currentTime.getFullYear();
        var months = currentTime.getMonth() + 1; // 月份从0开始，所以需要加1
        var days = currentTime.getDate();
        //格式化时间
        var curtime = currentTime.toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' });

        //  var hours = currentTime.getHours();
        // var minutes = currentTime.getMinutes();
        // var seconds = currentTime.getSeconds();
       
        function quitEdit(){
            if(confirm("是否退出修改?")){
                location.href = "myblog_list.html";       
            }
        }
        var isSubmit = 1;//默认允许提交
        var id = 0;//默认文章id
        var content = 0;//默认文章内容为空
        var editor;
        function initEdit(md){
            // 编辑器设置
            editor = editormd("editorDiv", {
                // 这里的尺寸必须在这里设置. 设置样式会被 editormd 自动覆盖掉. 
                width: "100%",
                // 高度 100% 意思是和父元素一样高. 要在父元素的基础上去掉标题编辑区的高度
                height: "calc(100% - 50px)",
                // 编辑器中的初始内容
                markdown: md,
                // 指定 editor.md 依赖的插件路径
                path: "editor.md/lib/",
                saveHTMLToTextarea: true // 
            });
        }
        initEdit("# 在这里写下一篇博客"); // 初始化编译器的值
        //1.查询当前文章内容
        function initArt(){
            id = getParamByKey("id");
            if(id==null || id<= 0){
                alert("非法参数！");
                return false;
            }
            jQuery.ajax({
                url:"/art/getdetailbyid",
                type:"post",
                data:{
                    "id":id
                },
                success:function(res){
                    if(res.code==200 && res.data!=null && res.data.id>0){
                        //查询成功。填充内容
                        jQuery("#title").val(res.data.title);
                        initEdit(res.data.content);
                    }else{
                        alert("非法参数！");
                        isSubmit = 0;
                    }
                }
            });
        }
        initArt();
        //2. 提交修改
        function mysub(){
            // alert(editor.getValue()); // 获取值
            // editor.setValue("#123") // 设置值
            if(isSubmit == 0){
                alert("非法操作，请刷新页面!");
                return false;
            }
               // 非空判断
               var title = jQuery("#title");
            if(title.val().trim() ==""){
                alert("请输入标题!");
                title.focus();
                return false;
            }
            content = editor.getValue();
            if(content==""){
                alert("请输入文章内容!");
                return false;
            }
            jQuery.ajax({
                url:"/art/update",
                type:"post",
                data:{
                    "id":id,
                    "title":title.val(),
                    "content":content
                },
                success:function(res){
                    if(res.code == 200 && res.data==1){
                        alert("修改成功!");
                        location.href="myblog_list.html";
                    }else{
                        alert("修改失败");
                    }
                }
            });
        }
        // 保存草稿
        function mysave(){
            if(isSubmit == 0){
                alert("非法操作，请刷新页面!");
                return false;
            }
               // 非空判断
               var title = jQuery("#title");
            if(title.val().trim() ==""){
                alert("请输入标题!");
                title.focus();
                return false;
            }
            content = editor.getValue();
            if(content==""){
                alert("请输入文章内容!");
                return false;
            }
            jQuery.ajax({
                url:"/art/editsave",
                type:"post",
                data:{
                    "id":id,
                    "title":title.val(),
                    "content":content
                },
                success:function(res){
                    if(res.code == 200 && res.data==1){
                        alert("保存成功!");
                        location.href="myblog_list.html";
                    }else{
                        alert("保存失败");
                    }
                }
            });
        }
        //每隔5分钟自动保存文章
        setInterval(automaticSave, 5 * 60 * 1000);
        function automaticSave(){
            title = jQuery("#title");
            if(title.val().trim() ==""){
                return false;
            }
            content = editor.getValue();
            if(content==""){
                return false;
            }
            jQuery.ajax({
                url:"/art/editsave",
                type:"post",
                data:{
                    "id":id,
                    "title":title.val(),
                    "content":content
                },
                success:function(res){
                    var spanHtml = "";
                    if(res.code == 200 && res.data==1){
                        spanHtml +='<span id="timesave" style="font-size: 14px; color: gainsboro;">'+formattedDate+'保存成功</span>';
                        console.log("成功保存");
                    }
                    jQuery("#timesave").html(spanHtml);

                }
            });
        }
        function myTimeOut(){
            // 获取输入框中的值
            const dateInput = document.getElementById('dateInput').value;
            // 使用Date对象解析输入的年月日数字时间
            const date = new Date(dateInput);
            // 使用strftime方法将Date对象格式化为所需的格式
            const publishtime = date.toLocaleString('zh-CN', { year: 'numeric', month: '2-digit', day: '2-digit' });
            console.log(publishtime);
        
            if(isSubmit == 0){
                alert("非法操作，请刷新页面!");
                return false;
            }
               // 非空判断
               var title = jQuery("#title");
            if(title.val().trim() ==""){
                alert("请输入标题!");
                title.focus();
                return false;
            }
            content = editor.getValue();
            if(content==""){
                alert("请输入文章内容!");
                return false;
            }
            if(publishtime == ""){
                alert("设置的定时时间为空!");
                return false;
           }
           if(publishtime < curtime){
                alert("设置的定时时间小于当前日期!");
                return false;
           }
            //发送请求给后端
            jQuery.ajax({
                url:"/art/timeoutupdate",
                type:"post",
                data:{
                    "id":id,
                    "title":title.val(),
                    "content":content,
                    //默认当日12点发布
                    "publishTimeStr" :publishtime+' 12:00:01'
                },
                success:function(res){
                    if(res.code == 200 && res.data==1){
                        alert("定时成功!");
                        location.href="myblog_list.html";
                    }else{
                        alert("定时失败:"+res.msg);
                    }
                }
            });
            // //发送定时请求
            // jQuery.ajax({
            //     url:"/art/timeout",
            //     type:"post",
            //     data:{
            //         "id":id,
            //         "title":title.val(),
            //         "content":content,
                    
            //     },
            //     success:function(res){
            //         if(res.code == 200 && res.data==1){
            //             alert("定时成功!");
            //             location.href="myblog_list.html";
            //         }else{
            //             alert("定时失败");
            //         }
            //     }
            // });
        }
        // function loginout(){
        //     if(confirm("是否退出？")){
        //         // alert("退出成功！");
        //         jQuery.ajax({
        //             url:"/user/logout",
        //             type:"post",
        //             data:{},
        //             success:function(res){
        //                 if(res.code == 200 && res.data==1){
        //                     //注销成功
        //                     location.href = "blog_list.html";
        //                 }else{
        //                     alert("注销失败:"+res.msg);
        //                 }
        //             }
        //         });
        //     }
        // }
      
    </script>
    <script>
        (function() {
            /*建立模态框对象*/
            var modalBox = {};
            /*获取模态框*/
            modalBox.modal = document.getElementById("myModal");
            /*获得trigger按钮*/
            modalBox.triggerBtn = document.getElementById("triggerBtn");
            /*获得关闭按钮*/
            modalBox.closeBtn = document.getElementById("closeBtn");
            /*模态框显示*/
            modalBox.show = function() {
                console.log(this.modal);
                this.modal.style.display = "block";
            }
            /*模态框关闭*/
            modalBox.close = function() {
                this.modal.style.display = "none";
            }
            /*当用户点击模态框内容之外的区域，模态框也会关闭*/
            modalBox.outsideClick = function() {
                var modal = this.modal;
                window.onclick = function(event) {
                    if(event.target == modal) {
                        modal.style.display = "none";
                    }
                }
            }
            /*模态框初始化*/
            modalBox.init = function() {
                var that = this;
                this.triggerBtn.onclick = function() {
                    that.show();
                }
                this.closeBtn.onclick = function() {
                    that.close();
                }
                this.outsideClick();
            }
            modalBox.init();
         
        })();
        </script>
</body>

</html>